import sys
from PyQt5.QtSql import *
from PyQt5.QtWidgets import *

def createConnection():

    if QSqlDatabase.contains():                                         # если соединение уже имеется
        db = QSqlDatabase.database()                                    # используем его
    else:
        db = QSqlDatabase.addDatabase("QMYSQL")                         # создаём новое соединение
    db.setHostName('localhost')
    db.setDatabaseName('orders')
    db.setUserName('root')
    db.setPassword('123456')
    if db.open():                                                       # открываем соединение
        print('открыли')
        return db
    else:
        error = db.lastError()
        num_error = error.number()
        if num_error == 1044:
            message = "Недопустимое имя базы данных. Проверьте правильность в поле [База]."
        elif num_error == 1045:
            message = "Недопустимое имя пользователи и/или пароль. Проверьте правильность в полях [Логин] и [Пароль]"
        elif num_error == 2003:
            message = "Сервер не отвечает на запросы. Проверьте правильность IP адреса в поле [Сервер]."
        else:
            message = ("код ошибки: {}. Оригинальное сообщение: {} "
                .format(num_error,error.text()))
        dialog = QMessageBox()
        dialog.setIcon(QMessageBox.Warning) # иконка
        dialog.setWindowTitle("СООБЩЕНИЯ СЕРВЕРА")
        dialog.setText(message)
        dialog.exec_()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    db = createConnection()
    if not db:
        quit()
    view = QTableView()
    model = QSqlTableModel()
    model.setTable("store");
    model.setFilter("note = 'комментарий'");
    model.select()
    model.setEditStrategy(QSqlTableModel.OnFieldChange)
    view.setModel(model)
    view.show()
    sys.exit(app.exec_())
